User:Wayne Decatur/I-Ppo Morph Methods

Generated straight B-form DNA of homing site used in structure (TTGACTCTCTTAAGAGAGTCAA [extra 'A' at 3' end for getting two T's on both strands since you only enter text for one strand) using Model It (see molvisindex.org under Molecules, Sources of PDB Files, under DNA Tools) as described in Lac repressor morph methods. Editing text of the pdb file, I deleted the 'A' at the three prime end of each strand to generate ends like in the 1a73 structure.

In order to use with straight B-form DNA (generated by Model IT), I needed to get unremediated pdb file for 1a73 or completely alter the order of the residue atoms and chain designations to match. I felt the unremediated file was the easiest route to go.

I loaded 1a73 structure into Swiss-pdb viewer (DEEP VIEW) and let it magic fit the apo enzyme in 1evx. I disabled movement on those two structures and loaded the unbound DNA. When I had turned it so it was close, I enable movement on all and turned about 90 degrees and then disabled movement again all all but the unbound DNA and moved it into plane with the other structures. I save each layer individually. I edited the aligned 1evx file to match atom numbers with the aligned 1a73 and removed the SO4s. I deleted the 2 Magnesiums in the aligned 1a73 file.

Next, I needed to renumber the atoms in the unbound DNA to make it easy to compare to file 1a73 so that I could match up the number of atoms since morphing needs equal numbers. I also needed to change the chain ids from a and b to match c and d in 1a73. (At first, I thought Biopython would do this but after using the tutorial to install Numpy1.1 and Biopython in addition to my already present installation of Python 2.5, I found at the help site for manipulating pdb files with Biopython and also the cookbookthat it doesn't concern itself with atom numbers that I could see and instead just parses all the other information like chain id and residue number to make that easy to work with. In fact, I wrote a program with it to easily renumber residues and save the file and learned it wasn't what I want; however, here is the program I wrote in case anyone else needs a program that alters residue numbers using Biopython:

from Bio.PDB.PDBParser import PDBParser

parser = PDBParser

structure = parser.get_structure('test', 'test.pdb') header = parser.get_header trailer = parser.get_trailer

for model in structure: for chain in model: i = 2493 for residue in chain: residue.id = (' ', i, ' ') i += 1

from Bio.PDB import PDBIO

w = PDBIO w.set_structure(structure) w.save('test-r1.pdb')

So I searched for something else thinking although I could break it up and do it with a simple Python program it would be nice to find a tool or service to do it to which I could direct students and colleagues who have the same issues arise instead of having them install Python if they aren't already using it.)

I found PDB Goodies to take care of the chain renumbering (a.k.a. 'change chain designations' or 'change chain identifiers' or change 'chain lettering'). To get started, just a bit down the page I clicked the not overly obvious spot that said 'click here to see available options in PDB Goodies' to start and on the next page uploaded my pdb file. (Note on this page a link to in the bottom right corner that does summarize what PDB Goodies does). And I chose 'Change Chain Identifiers' and changed A and B to C and D easily using the form generated from my uploaded file and getting the results (HOWEVER DURING LATER USE OF THIS SITE I NOTED THAT WILL THE RESULT ON THE SCREEN AFTER RUNNING THE CHANGE HAD ALL THE RESIDUES, USING THE SAVE BUTTON ONLY OBTAINED 359 of THE 543 RESIDUES. SO BEST TO COPY TO RESULT FROM THE SCREEN.) (Note PDB goodies also renumbers residue numbers, generating a nice form using the file; I had problems when name of my uploaded file was very long (shortening name fixed it). )(When helping people with animations previously I had used 'alter' command right in Pymol (see http://pymol.sourceforge.net/newman/ref/S1000comref.html) and ran 'sort' command after each altering in order to change chain designations in the pdb files, for example see User:Wayne Decatur/Sandboxmangai) For renumbering the atom numbers I found this page of documentation for Maya Chem Tools which does a lot more manipulating of PDB files than just what I found it for but it is for installing with Perl. So having found a number of possibly useful items, I decided it was easier to write my own Python script because I realized that I also need to discard lines that involved atoms designated 'H5*' that I assume came from Model It and this is a fairly unique situation that shouldn't arise often for others. The Python script I generated:

pdb = open("test.pdb", "r")

i = 2493 for line in pdb: if line[:4] == 'ATOM':   #so only does atoms and not comments or other lines if line[13:16] != 'H5*': #added this because the unbound DNA I got from Model It seemed to have H5* atoms that 1a73 did not so I didn't want those lines print line [:7] + str(i) + line [11:-1] i += 1

Next I combined the aligned edited 1evx file with the aligned edited unbound DNA file to match 1a73. At first I thought the Yale Morph Server wouldn't work because I had DNA in the structure but in the FAQ I found a link to the Morph Server for multiple subunits and nucleic acids that sounded perfectly suited; however, it didn't seem to ever send anything back. So I went looking for more explanation and couldn't figure out what was wrong. So I looked at what the FAQ called 'the Beta server'. That server said on its page here that is was the 'Server for morphing complexes' and they wanted to implement it working for nucleic acids "in a few weeks". (I also found that at the time, the link to the 'multi chain server' here went to that server too.) On a lark, I tried it with the proteins (using the same file I submitted to the other server) and they came right back nicely morphed. Then I used it to submit the same files with the nucleic acid and they came back nicely morphed. IT WORKED.